/**
 * 应用程序主类. 当app.js中调用Ext.application()时这个类的实例就会产生。
 * 这是详细处理应用程序加载和初始化的理想场所
 */
Ext.define('gytoa.Application', {
    extend: 'Ext.app.Application',
    name: 'gytoa',
    stores: [
        // TODO: add global / shared stores here
    ],
    
    launch: function () {

	    Ext.Ajax.on('requestexception', function(conn, response, options) {
    		if (response.responseText && response.responseText.indexOf("sessiontimeout") > -1) {
    			OA.Msg.alert('系统提示', '您的当前登入会话已经过期，请重新登录！');
    		}else if(response.status == 0){
    			OA.Msg.error("操作请求超时，无法与服务器进行通信，请确认网络或服务器是否出问题！")
    		}else {
            	var err = Ext.decode(response.responseText,true);
            	err && err.msg ? OA.Msg.error(err.msg) : OA.Msg.error("系统处理失败！");
    		}
    	});
    	Ext.Ajax.on('requestcomplete', function(conn, response, options) {
    		if (response.responseText && response.responseText.indexOf("sessiontimeout") > -1) {
    			OA.Msg.alert('系统提示', '您的当前登入会话已经过期，请重新登录！');
    		}
    	});
    	Ext.Ajax.on('exception', function(conn, response, options) {
    		if (response.responseText && response.responseText.indexOf("sessiontimeout") > -1) {
    			OA.Msg.alert('系统提示', '您的当前登入会话已经过期，请重新登录！');
    		}else if(response.status == 0){
    			OA.Msg.error("操作请求超时，无法与服务器进行通信，请确认网络或服务器是否出问题！")
    		}else {
					
            	var err = Ext.decode(response.responseText,true);
            	err && err.msg ? OA.Msg.error(err.msg) : OA.Msg.error("系统处理失败！");
    		}
    	});
    	Ext.getDoc().on('keydown',function(e){
    		if(e.getKey() == e.BACKSPACE && (e.getTarget().type == 'password' || e.getTarget().type == 'text' || e.getTarget().type == 'textarea') && !e.getTarget().readOnly){
    			
    		}else if(e.getKey() == e.BACKSPACE){
    			e.preventDefault();
    		}
    	});
    	Ext.Ajax.setTimeout(180000); //默认请求超时为3分钟
    	Ext.QuickTips.init();
    }
});
